sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别

您所在的位置:网站首页 mongodb和mysql的区别 性能对比 sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别

2024-04-08 10:24| 来源: 网络整理| 查看: 265

一、数据库的基本概念

数据库(database)是用来组织、存储和管理数据的仓库。

常见的数据库有如下几个:

MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;社区版/企业版)

Oracle 数据库(收费)

SQL Server 数据库(收费)

Mongodb 数据库(社区版/企业版)

MySQL、Oracle、SQL Server 属于传统型数据库(关系型数据库/SQL数据库)

Mongodb 属于新型数据库(非关系型数据库/NoSQL数据库)

1. 传统型数据库的数据组织结构

数据组织结构:数据以什么样的结构进行存储。

传统型数据库的数据组织结构,与Excel中的数据组织结构比较类似。

每个Excel中,数据的组织结构由工作簿、工作表、数据行、列这4大部分组成

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL

数据库(database)、数据表(table)、数据行(row)、字段(field)这4大部分组成

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_02

实际开发中库、表、行、字段的关系:

1. 一般情况下,每个项目都对应独立的数据库。

2. 不同的数据,要存储到数据库的不同表中,例如:用户数据存储到users表中,图书数据存储到books表中。

3. 每个表中具体存储哪些信息,由字段来决定,例如:我们可以为users表设计id、username、password这3个字段。

4. 表中的行,代表每一条具体的数据。

二、安装并配置MySQL

对于开发人员,只需安装 MySQL Server 和 MySQL Workbench 这两个软件,就能满足开发需要了。

MySQL Server:专门用来提供数据存储和服务的软件。

MySQL Workbench:可视化的MySQL管理工具,可以方便地操作存储在MySQL Server中的数据。

三、MySQL的基本使用(一)使用 MySQL Workbench 管理数据库

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_03

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_04

 

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_05

 

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_06

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_07

(二)使用SQL管理数据库

SQL(Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里的数据。

三个关键点:

(1)SQL是一门数据库编程语言。

(2)使用SQL语言编写出来的代码,叫做SQL语句。

(3)SQL语言智能在关系型数据库中使用(例如MySQL、Oracle、SQL Server)。非关系型数据库(例如Mongodb)不支持SQL语言。

SQL能做什么:

对数据库的数据进行增删改查

1. SQL的 SELECT 语句

SELECT语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_08

 注意:SQL语句中的关键字对大小写不敏感。SELECT等效于select,FROM等效于from

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_09

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_10

 2. SQL的 INSERT INTO 语句

INSERT INTO 语句用于向数据表中插入新的数据行。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_11

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_12

 3. SQL的 UPDATE 语句

UPDATE语句用于修改表中的数据。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_13

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_14

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_15

 4. SQL的 DELETE 语句

DELETE 语句用于删除表中的行。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_16

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_17

 5. SQL的 WHERE 子句

WHERE 子句用于限定选择的标准。在SELECT、UPDATE、DALETE语句中,皆可使用WHERE子句来限定选择的标准。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_18

 可以在WHERE子句中使用的运算符:

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_19

 

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_20

 6. SQL的 AND 和 OR 运算符

AND 和 OR 可以在WHERE子句中把两个或多个条件结合起来

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_21

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_22

 7. SQL的 ORDER BY 子句

ORDER BY 语句用于根据指定的列对查询到的结果集进行排序。默认按照升序对记录进行排序,ASC关键字可省略;如果希望按照降序对记录进行排序,可以使用DESC关键字。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_23

 

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_24

order by 子句的多重排序:

先按第一个条件排序,第一个条件相同的再按第二个条件排序

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_25

 8. SQL的 COUNT(*) 函数

COUNT(*) 函数用于返回查询结果的总数据条数。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_26

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_27

使用 AS 关键字为列设置别名

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_28

 四、在项目中操作MySQL

1. 安装操作MySQL数据库的第三方模块(mysql) 

2. 通过mysql模块连接到MySQL数据库

3. 通过mysql模块执行SQL语句

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_29

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_30

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_31

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_32

 注意:如果执行的是select查询语句,则执行的结果是数组

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_33

 SQL语句中可用 ? 占位符,对值进行占位,后续再为占位符提供真正的值

注意:如果执行的是insert into或update或delete等语句,则执行的结果results是对象,可通过其中的affectedRows属性来判断是否插入数据成功。

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_34

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_35

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_36

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_37

 SQL语句中如果只有一个占位符,则可以省略数组的形式,直接写一个值

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_38

 五、前后端的身份认证1. Web开发模式

目前主流的Web开发模式有两种,分别是:

(1)基于服务端渲染的传统Web开发模式

(2)基于前后端分离的新型Web开发模式 

2. 身份认证

身份认证(Authentication)又称“身份验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。

对于服务端渲染和前后端分离这两种开发模式来说,分别有着不同的身份认证方案:

(1)服务端渲染推荐使用Session认证机制

(2)前后端分离推荐使用JWT认证机制

3. Session认证机制

HTTP协议的无状态性:客户端的的每次HTTP请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次HTTP请求的状态。

 如何突破HTTP无状态的限制:Cookie进行身份认证(类似会员卡)

(1)Cookie

Cookie是存储在用户浏览器中的一段不超过4kb的字符串。它由一个名称(Name)、一个值(Value)和其他几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。

不同域名下的Cookie各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的Cookie一同发送到服务器。

Cookie的特性:(1)自动发送(2)域名独立(3)过期时限(4)4kb限制 

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_39

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_40

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_41

 如何提高身份认证的安全性:会员卡(Cookie)+刷卡认证

(2)Session的工作原理

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_42

 4. 在Express中使用Session认证

(1)安装express-session中间件

npm install express-session

(2)配置express-session中间件

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_43

 (3)向session中存数据

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_44

 (4)从session中取数据

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_45

 (5)清空session

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_46

 5. JWT认证机制

Session认证的局限性:

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_47

 JWT(JSON Web Token)是目前最流行的跨域认证解决方案

JWT的工作原理:

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_48

 总结:用户的信息通过Token字符串的形式,保存在客户端的浏览器中。服务器通过还原Token字符串的形式来认证用户的身份。

JWT的组成部分:Header(头部)、Payload(有效载荷)、Signature(签名),三者之间使用英文的 “.” 分隔

Header.Payload.Signature

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_49

Payload部分才是真正的用户信息,它是用户信息经过加密之后生成的字符串。

Header和Signature是安全性相关的部分,只是为了保证Token的安全性。

JWT的使用方式:

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_50

 6. 在Express中使用JWT

(1)安装JWT相关的包(2个)

npm install jsonwebtoken express-jwt

其中:jsonwebtoken用于生成JWT字符串,express-jwt用于将JWT字符串解析还原成JSON对象

(2)导入JWT相关的包

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_MySQL_51

 (3)定义secret密钥

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_database_52

 (4)在登录成功后生成JWT字符串

调用jsonwebtoken包提供的sign()方法,将用户的信息加密成JWT字符串,响应给客户端

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_53

 配置对象可以配置当前token的有效期

(5)将JWT字符串还原为JSON对象

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_SQL_54

 (6)使用req.auth获取用户信息

(注意:新版本下,图中req.user应修改为req.auth)

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_mysql_55

 只要配置成功了express-jwt这个中间件,就可以把解析出来的用户信息,挂载到req.user属性上。

req.user中包含哪些信息是我们自己决定的,如登录成功后,调用jwt.sign()方法生成JWT字符串时,第一个参数就是需要加密的用户信息,相当于req.auth。

注意:不要把密码加密到token字符串中,不安全

(7)捕获解析JWT失败后产生的错误

sqlserver mongodb读写性能对比 mongodb数据库和sqlserver区别_数据库_56



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3